In recent years, the number of users on the internet has increased exponentially. With this increase in popularity, there has also come an increased demand for tools which enhance the xe2x80x9con line experience.xe2x80x9d To this end, new object oriented computer programming languages such as Java(trademark) have been developed. While these languages are an advance over prior technology, there is still room for improvement, particularly in the ability to efficiently modify layout of complex structures of graphical objects in variable sized windows. It is difficult to implement high quality, real time graphics on a web site using these languages.
Java allows minimum and maximum sizes to be specified for graphical objects and uses those values in a way that causes objects to act more stretchy when the differences between their minimum and maximum sizes is large.
A language explicitly developed for internet applications is the MIT Curl Language by M. Hostetter et al, xe2x80x9cCurl: A Gentle Slope Language for the Web,xe2x80x9d WorldWideWeb Journal, Vol II. Issue 2, O""Reilly and Associates, Spring 1997. The present invention extends the Curl language. (The language of the present invention will be referenced as xe2x80x9cCurlxe2x80x9d and is to be distinguished from the prior xe2x80x9cMIT Curlxe2x80x9d language.) MIT Curl used a three-pass layout negotiation scheme and allowed objects to describe their size preferences in terms of a minimum size and a stretchiness coefficient.
TeX is a widely used text formatting program developed by Donald Knuth. Donald E. Knuth, The TeXBook, Addison-Wesley, Reading, Mass., 1984. TeX uses a concept known as xe2x80x9cgluexe2x80x9d to express dimensional preferences of fill objects and incorporates different stretch and compression orders that can be used to describe the stretchiness and compressibility of different kinds of fill objects. As the overall dimensions of a layout change, the dimensions of individual fill objects change dependent on preferred sizes and stretchiness of those objects.
A graphics tool kit developed by Robert Halstead called Stk incorporates the concept of an elastic, known as xe2x80x9cglue,xe2x80x9d having a minimum size, a stretchiness coefficient and a stretch order associated with graphical objects having content. The tool kit formalizes the layout computations of horizontal and vertical boxes of graphical objects in terms of elastic add, max and divide operations. Stk is not widely known or used. The layout mechanism of Stk was incorporated into Swat, a graphics toolkit developed at MIT by Harold Abelson, James Miller and Natalya Cohen.
In accordance with the present invention, a system, method and data structure are provided for processing of graphical objects to layout the graphical objects. Preferred sizes and elasticities of the graphical objects are computed along a first dimension. Size values of the graphical objects are computed along the first dimension from the preferred sizes and elasticities. Preferred sizes and elasticities of the graphical objects along a second dimension are then computed based on the size values of the graphical objects along the first dimension. Size values of the graphical objects along the second dimension are computed from the preferred sizes and elasticities. The first dimension may be selected to be width and the second dimension may be selected to be height, or vice versa.
Preferably, elasticities includes stretchiness and compressibility properties. The properties may include stretch and compress orders and stretchiness and compressibility coefficients. Minimum size values may be included in computing size values.
The sizes and elasticities of parent graphical objects may be computed from sizes and elasticities of child graphical objects. The size values computed for parent graphical objects are distributed among child graphical objects.